
class HlszVO {
  /**
   * 框架名称
  */
  public gameName: string = "HlszVO";
  public static VO: HlszVO = null;
  public static getVo(): HlszVO {
    if (!HlszVO.VO) {
      HlszVO.VO = new HlszVO();
    }
    return HlszVO.VO;
  }
  //玩家私有变量
  //id
  public userId_0: number;
  public userId_1: number;
  public userId_3: number;
  public userId_4: number;
  //名字
  public userName_0: string;
  public userName_1: string;
  public userName_3: string;
  public userName_4: string;
  //金币
  public lUserScore: number;
  public userMoney_0: number;
  public userMoney_1: number;
  public userMoney_3: number;
  public userMoney_4: number;
  //头像
  public userImg_0: number;
  public userImg_1: number;
  public userImg_3: number;
  public userImg_4: number;
  //状态
  public status_0: number;
  public status_1: number;
  public status_2: number;
  public status_3: number;
  public status_4: number;
  //桌子  
  public wTableId_up: number;
  public wTableId_0: number;
  public wTableId_1: number;
  public wTableId_2: number;
  public wTableId_3: number;
  public wTableId_4: number;
  //椅子
  public wChairId_0: number;
  public wChairId_1: number;
  public wChairId_2: number;
  public wChairId_3: number;
  public wChairId_4: number;
  public userInfo = {}; //广场里所有玩家信息所有玩家信息
  //玩家私有变量

  //房间信息
  public dwUserRight: any;			//玩家权限
  public dwMasterRight: any;			//管理权限
  public dwServerRule: number;          //房间规则
  public wChairCount: number;           //椅子数目
  public wServerType: number;           //房间类型
  public wTableCount: number;           //桌子数目
  public cbTimeOutCard = 10;		        //出牌时间
  public cbTimeOutExitGame = 13;		        //后端不准备踢人时间

  public lMaxScore = 0 //最大下注
  public lCellScore = 0 //当前单注
  public lCurrentTimes = 0//当前倍数（加注选按钮时根据此倍数判断哪些按钮可选）
  public lUserMaxScore = 0//分数上限（无卵用）
  public cbPlayStatus: Array<any> //玩家状态 0挂了 1在玩
  //游戏变量
  //庄家
  public gameNumbering: string = "";           //牌局编号
  public wBankerUser: number;           //庄家是谁
  public cbGameStatus: number;         //游戏进行状态

  public wCurrentUser: number;        //当前说话玩家
  public wOutCardUser: number;        //上次操作用户

  public qiPaiUser: number;     //刚才弃牌玩家 对应前端皮肤上座位号而不是后端座位号 比如2永远是自己，1是左上，4是右上
  public kanPaiser: number;    //刚才看牌玩家
  public xiaZhuUser: number;    //刚才下注玩家

  public xiazhuNum: number;    //刚才下注数额
  public xiazhuType: number;    //下注类型 1跟注 2 加注 0 下注 3比牌下注

  public biPaiUser: number;     //发起比牌玩家
  public biPaiUser2: number;   //被比牌玩家
  public shupaiUser: number;    //比牌输家
  public mySelectUser: number;  //我选择要比牌的玩家，点比牌后选一个人，然后记下来，发送比牌下注，下注返回后发送比牌的人
  public PkMeUser: Array<number> = [];         //谁跟我比过牌，结算的时候我要翻他的牌
  // 下注
  public xiazhuNum_ALL: number = 0;  //所有玩家总下注
  public xiaZhuNum_0: number = 0;     //该玩家总下注量
  public xiaZhuNum_1: number = 0;
  public xiaZhuNum_2: number = 0;
  public xiaZhuNum_3: number = 0;
  public xiaZhuNum_4: number = 0;
  //手牌状态 0 等待 1 闷牌 2已看牌 3已弃牌 4比牌输
  public chess_state_0: number;
  public chess_state_1: number;
  public chess_state_2: number;
  public chess_state_3: number;
  public chess_state_4: number;
  //所有人的得分
  public lGameScore: Array<number>;
  //所有人的手牌
  public cbCardDataALL: Array<Array<number>> = [[], [], [], [], []];
  //所有人的牌型
  public cbCardType: Array<number> = [];
  //看牌时我的牌型
  public cbCardType_my: number;
  // #define CT_SINGLE 1 //单牌类型
  // #define CT_DOUBLE 2 //对子类型
  // #define CT_SHUN_ZI 3 //顺子类型
  // #define CT_JIN_HUA 4 //金花类型
  // #define CT_SHUN_JIN 5 //顺金类型
  // #define CT_BAO_ZI 6 //豹子类型
  // #define CT_SPECIAL 7 //特殊类型
  //最终赢家
  public winUser: number;
  //是否点击过换桌。 点击换桌时 3-102踢人不关游戏界面，换桌失败或者开局重置变量
  public huanzhuoClick = false;
  //进入强制比牌状态
  public qiangzhibipai = false;
  public qiangzhibipai_userArr = [];

  public wTurnCount = 0//轮数
  public shuoHuaMap = {//记录本轮哪些人说话了。说话的人设为true，全部为true时轮数+1进入下一轮并把余下的活人全部重置为false，如果有人弃牌或者被比牌死了，从map移除，新局重置

  }

  //重置玩家信息
  public initUserInof() {
    //id 自己的ID不可重置！！！否则将无法从userInfo中找到自己
    this.userId_0 = null;
    this.userId_1 = null;
    this.userId_3 = null;
    this.userId_4 = null;
    //名字
    this.userName_0 = null;
    this.userName_1 = null;
    this.userName_3 = null;
    this.userName_4 = null;
    //金币
    this.lUserScore = null;
    this.userMoney_0 = null;
    this.userMoney_1 = null;
    this.userMoney_3 = null;
    this.userMoney_4 = null;
    //头像
    this.userImg_0 = null;
    this.userImg_1 = null;
    this.userImg_3 = null;
    this.userImg_4 = null;
    //状态
    this.status_0 = null;
    this.status_1 = null;
    this.status_2 = null;
    this.status_3 = null;
    this.status_4 = null;
    //桌子  
    this.wTableId_0 = null;
    this.wTableId_1 = null;
    this.wTableId_2 = null;
    this.wTableId_3 = null;
    this.wTableId_4 = null;
    //椅子
    this.wChairId_0 = null;
    this.wChairId_1 = null;
    this.wChairId_2 = null;
    this.wChairId_3 = null;
    this.wChairId_4 = null;
  }

  public initGameInfo() {
    this.wTurnCount = 0//轮数
    this.shuoHuaMap = {}
    this.lMaxScore = 0;//最大下注
    this.lCellScore = 0;//当前单注(我的)
    this.lCurrentTimes = 0;//当前倍数（加注选按钮时根据此倍数判断哪些按钮可选）
    this.lUserMaxScore = 0;//分数上限（无卵用）
    this.cbPlayStatus = [] //应该是玩家手牌状态
    //游戏变量
    //庄家
    this.gameNumbering = "";
    this.wBankerUser = null;                    //庄家是谁
    this.cbGameStatus = null;         //游戏进行状态

    this.wCurrentUser = null;                   //当前说话玩家
    this.wOutCardUser = null;           //上次操作用户

    this.qiPaiUser = null;     //刚才弃牌玩家 对应前端皮肤上座位号而不是后端座位号 比如2永远是自己，1是左上，4是右上
    this.kanPaiser = null;   //刚才看牌玩家
    this.xiaZhuUser = null;    //刚才下注玩家

    this.xiazhuNum = 0;    //刚才下注数额
    this.xiazhuType = null;    //下注类型 1跟注 2 加注 3比牌 4全下

    this.biPaiUser = null;    //发起比牌玩家
    this.biPaiUser2 = null;   //被比牌玩家
    this.shupaiUser = null;    //比牌输家
    this.mySelectUser = null;  //我选择要比牌的玩家，点比牌后选一个人，然后记下来，发送比牌下注，下注返回后发送比牌的人
    this.PkMeUser = [];
    // 下注
    this.xiazhuNum_ALL = 0;  //所有玩家总下注
    this.xiaZhuNum_0 = 0;     //该玩家总下注量
    this.xiaZhuNum_1 = 0;
    this.xiaZhuNum_2 = 0;
    this.xiaZhuNum_3 = 0;
    this.xiaZhuNum_4 = 0;
    //手牌状态  1 闷牌 2已看牌 3已弃牌 4比牌输
    this.chess_state_0 = null;
    this.chess_state_1 = null;
    this.chess_state_2 = null;
    this.chess_state_3 = null;
    this.chess_state_4 = null;
    //得分
    this.lGameScore = [];
    //所有人的手牌
    this.cbCardDataALL = [[], [], [], [], []];
    this.cbCardType = [];
    this.cbCardType_my = null;
    this.winUser = null;
    this.huanzhuoClick = false;
    this.qiangzhibipai = false
    this.qiangzhibipai_userArr = []
  }
}
